﻿namespace Agile.Infra.Pay.WxPay.Models
{
    public class WxJSAPIPayRequest
    { 
        /// <summary>【商品描述】必填 string(127) 商品信息描述，用户微信账单的商品字段中可见(可参考JSAPI支付示例说明-账单示意图)，服务商需传递能真实代表商品信息的描述</summary> 
        public string Description { get; set; }

        /// <summary>【商户订单号】必填 string(32) 服务商系统内部订单号，要求6-32个字符内，只能是数字、大小写字母_-|* 且在同一个服务商商户号下唯一</summary> 
        public string OutTradeNo { get; set; }

        /// <summary>【支付结束时间】</summary> 
        public string TimeExpire { get; set; }

        /// <summary>【商户数据包】附加数据，在查询API和支付通知中原样返回，可作为自定义参数使用，其总长度限制在128字符以内。</summary> 
        public string Attach { get; set; }

        /// <summary>【商户回调地址】必填 string(255) 服务商接收支付成功回调通知的地址，需按照notify_url填写注意事项规范填写。</summary> 
        public string NotifyUrl { get; set; }

        /// <summary>【订单优惠标记】订单优惠标记，使用代金券或立减优惠功能时需要的参数</summary> 
        public string GoodsTag { get; set; }

        /// <summary>【分账标识】订单的分账标识在下单时设置，传入true表示在订单支付成功后可进行分账操作</summary>
        public bool ProfitSharing { get; set; }

        /// <summary>【电子发票入口开放标识】 传入true时，支付成功消息和支付详情页将出现开票入口。需要在微信支付服务商平台或微信公众平台开通电子发票功能，传此字段才可生效。</summary> 
        public bool SupportFapiao { get; set; }

        /// <summary>【总金额】 订单总金额，单位为分，整型。</summary>
        public int TotalAmount { get; set; }

        /// <summary>【支付者信息】支付者信息</summary> 
        public string OpenID { get; set; }
    }
}
